/**
 *
 * Copyright c FOUNDER 2005 All Rights Reserved.
 *
 * DataSet.java
 *
 */

package com.iori.common.db.dbctrl;

import java.sql.SQLException;

/**
 *
 * [クラス名]<br>
 * データセット<br>
 * <br>
 * [機能概要]<br>
 * DataAccessorによって取得した結果に順次アクセスを容易にするための インターフェース。<br>
 * <br>
 * [変更履歴]<br>
 * 2005/07/07 ver1.00 新規作成 zhanjc<br>
 *
 * @see jp.co.pia.bety.front.common.db.dbctrl.DataAccessor
 *
 * @author zhanjc
 * @version 1.00
 */
public interface DataSet {

	/**
	 * レコード件数を取得する。
	 *
	 * @return レコード件数
	 */
	public int getCount();

	/**
	 * カレントレコードを次のレコードに移動する。<br>
	 * カレントレコードがレコードの末端を超えるとfalseを返す。
	 *
	 * @return カレントレコードがレコードの末端に達していなければtrue
	 */
	public boolean next();

	/**
	 * カレントレコードを初期化し、レコードを先頭から再取得できるようになる。<br>
	 * 実際にレコードを再取得する場合には、このメソッド呼出し後に再びnextメソッドを 呼び出さなければならない。
	 */
	public void reset();

	/**
	 * カレントレコードの指定したカラム名からカラム値のJavaデータ型を取得する。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値のJavaデータ型
	 */
	public String getType(String name);

	/**
	 * カレントレコードの指定したカラムの値をStringとして取得する。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public String getString(String name);

	/**
	 * カレントレコードの指定したカラムの値をIntegerとして取得する。<br>
	 * int値に変換できない場合はnullを返す。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public Integer getInteger(String name);

	/**
	 * カレントレコードの指定したカラムの値をLongとして取得する。<br>
	 * long値に変換できない場合はnullを返す。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public Long getLong(String name);

	/**
	 * カレントレコードの指定したカラムの値をFloatとして取得する。<br>
	 * float値に変換できない場合はnullを返す。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public Float getFloat(String name);

	/**
	 * カレントレコードの指定したカラムの値をDoubleとして取得する。<br>
	 * double値に変換できない場合はnullを返す。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public Double getDouble(String name);

	/**
	 * カレントレコードの指定したカラムの値をBooleanとして取得する。<br>
	 * boolean値に変換できない場合はfalseとして扱う。
	 *
	 * @param name
	 *            カラム名
	 *
	 * @return カレントレコードのカラム値
	 */
	public Boolean getBoolean(String name);

	/**
	 * Retrieves the number, types and properties of this <code>DataSet</code>
	 * object's columns.
	 *
	 * @return the description of this <code>DataSet</code> object's columns
	 * @exception SQLException
	 *                if a database access error occurs
	 */
	public DataSetMetaData getMetaData();
}
